home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Almathera Ten Pack 2: CDPD 1
/
Almathera Ten on Ten - Disc 2: CDPD 1.iso
/
pd
/
201-225
/
216
/
backdrop
/
src
/
atoi.a
next >
Wrap
Text File
|
1995-03-13
|
669b
|
28 lines
* :ts=8
*
* A very simple function which simply converts an ASCII string to its numeric
* equivalent. It is MUCH smaller than it's equivalent in the Lattice
* library.
*
xdef atoi
csect text,0,0,1,2
atoi:
moveq #0,d0 ; Initialise integer to 0
moveq #0,d1 ; Initialise temporary variable
move.l 4(a7),a0 ; Get pointer to string
loop:
move.b (a0)+,d1 ; Get next character from string
subi.b #$30,d1 ; Convert to range 0-9
cmpi.b #10,d1 ; If outside range,
bhi.s exit ; then return to caller
mulu #10,d0 ; Update count
add.l d1,d0 ; Add in new digit
bra.s loop ; And go back for next digit
exit:
rts ; Return with number in D0
end